﻿<p>The schema <em>IfcGeometricConstraintResource</em> defines the resources used to determine the placement of the shape representation of a product within the geometric representation context of a project. It also contains resource definitions to be assigned to product connectivity definitions to determine the connection geometry constraints between those products.</p>
<p>The primary application of this resource is to:</p>
<ul>
  <li>determine the object placement used for the shape representation of the object</li>
  <li>determine the constraints applied to the connectivity between two shapes of objects</li>
</ul>

<h4>8.7.1.1 Placement</h4>
<p>The placement of an product's shape is given by the <em>IfcObjectPlacement</em>, used by the  attribute <em>ObjectPlacement</em> of <em>IfcProduct</em>. The object placement defines the local object coordinate system in which all shape representations of that product are defined. It is given either as</p>
<ul>
  <li>absolute placement,
    <ul class="inner">
      <li>the absolute placement is specified by using <em>IfcLocalPlacement</em> and omitting the <em>PlacementRelTo</em> attribute;
      </li>
    </ul>
  </li>
  <li>relative placement,
    <ul class="inner">
      <li>the relative placement is specified by using <em>IfcLocalPlacement</em> and pointing the <em>PlacementRelTo</em> attribute to an <em>IfcObjectPlacement</em> used in another <em>IfcProduct</em> instance;
      </li>
    </ul>
  </li>
  <li>placement relative to a grid,
    <ul class="inner">
      <li>the placement relative to a grid is specified by using <em>IfcGridPlacement</em> pointing to one (or two) virtual intersections of <em>IfcGridAxis</em>. If two virtual intersections are references, than the second virtual intersections specifies the orientation of the object placement. Alternatively the direction can also be provided explicitly by ifcDirection. 
      </li>
    </ul>
  </li>
</ul>

<blockquote class="note">
NOTE&nbsp; When using relative placement the shape representation of each product is defined in the local object coordinate system provided by <em>ObjectPlacement</em>. That local object coordinate system is defined relative to the object coordinate system referred to by <em>PlacementRelTo</em> which may be a relative placement as well. Finally the <em>ObjectPlacement</em> not having an <em>PlacementRelTo</em> attribute defined the transformation into the global coordinate system. The transformation of the current coordinate system into the parent coordinate systems have to be applied in that order.
</blockquote>

<h4>8.7.1.2 Connection geometry</h4>
<p> The connection geometry defines the connectivity between the shapes of two products. The constraint can be defined by geometric representation items:</p>
<ul>
  <li>point</li>
  <li>curve</li>
  <li>surface</li>
  <li>solid</li>
</ul>
<p>or by topological representation items with associated
geometry:</p>
<ul>
  <li>vertex point</li>
  <li>edge curve</li>
  <li>face surface</li>
  <li>closed shell</li>
</ul>
<p>As a special type of point connection includes the provision to express an eccentricity, i.e. a physical distance between the two points involved in the connection.</p>